package cn.wen.yaling.xo.service;

import cn.wen.yaling.commons.entity.TypeEntity;
import cn.wen.yaling.commons.vo.*;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.wen.yaling.commons.utils.PageUtils;
import cn.wen.yaling.commons.entity.SubjectEntity;

import java.util.List;
import java.util.Map;

/**
 * 
 *
 * @author FY
 * @email 932043654@qq.com
 * @date 2022-08-13 02:07:37
 */
public interface SubjectService extends IService<SubjectEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 通过专题Id获取点专题下的所有文章
     * @param subjectId
     * @return
     */
    List<TypeEntity> getSubjectAllTypeBySubjectId(Integer subjectId);

    /**
     * 通过subjectId获取所有正常使用的文章
     * @param subjectId
     * @return
     */
    List<SubjectVO> getAllArticleBySubjectId(Integer subjectId);

    /**
     * 获取专题列表
     * @return
     */
    List<SubjectListVO> getAllSubjectList();

    /**
     * 通过 Ids 删除专题信息
     * @param subjectIds
     * @return
     */
    boolean deleteByIds(Integer[] subjectIds);

    /**
     * 添加专题信息
     * @param subjectAddVO
     * @return
     */
    boolean addSubject(SubjectAddVO subjectAddVO);

    /**
     * 修改专题信息
     * @param subjectUpdateVO
     * @return
     */
    boolean updateSubject(SubjectUpdateVO subjectUpdateVO);

    /**
     * 模糊查询专题
     * @param subjectName
     * @return
     */
    List<SubjectListVO> searchSubject(String subjectName);

    /**
     * 获取专题列表的基本信息
     * @param subjectId
     * @return
     */
    List<SubjectAdminVO> getAllSimpleArticleInfoBySubjectId(Integer subjectId);
}

